James Pond 3: Operation Starfish Hacking notes, by Damian Grove Date: 06/18/2010 These notes are for the Sega Genesis version, except where specified. To modify this game, you must bypass EA's security system. Replace the 3 words at 0x300 with NOP instructions (4E71). So there should be 4E71 4E71 4E71 at that address. 09FD0E - 16-bit pointer to UP functionality on options 09FD12 - 16-bit pointer to DOWN functionality on options 09FD16 - 16-bit pointer to START functionality on options 09FD1A - 16-bit pointer to A functionality on options 09FD1E - 16-bit pointer to B functionality on options 09FD22 - 16-bit pointer to C functionality on options 09FF1C - Pointer to "AUDIO MODE-" 09FF20 - Pointer to "CONTROLS-" 09FF24 - Pointer to "INFORMATION BOXES-" 09FF28 - Pointer to "MUSIC TEST-" 09FF2C - Pointer to "SFX TEST-" 09FF30 - Pointer to "START LEVEL-" 0A2BF2 - Marker type 0A2BF3 - 24-bit pointer to MAP01 name on map screen (and in level!) 0A2BF6 - X position of MAP01 marker on map screen 0A2BF8 - Y position of MAP01 marker on map screen 0A2BFA - Marker to link with the up direction 0A2BFB - Marker to link with the down direction 0A2BFC - Marker to link with the left direction 0A2BFD - Market to link with the right direction 0A2BFE - When marker type is 01, this is made 0x80 (don't know why) 0A2BFF - When marker type is 01, this tells what marker to reference For marker type (0A2BF2): 00 - normal 01 - arrow FE - unlocked FF - unlocked Not sure the difference between FE and FF Marker 0x79 is "The Forgotten Zone", which actually leads to "The Crystal Caverns". It seems perhaps it was used to access Dr. Maybe's hideout before they finally decided to make it unnecessary to get to it via The Crystal Caverns. Markers are listed in order according to the map order. However, marker 00 corresponds to MAP01, marker 01 corresponds to MAP02, and so on. COMPRESSED STUFF: 031940 - Starfish logo 060000 - James Pond spinning rocket ship animation 062A3C - Mappings for spinning rocket ship animation UNCOMPRESSED STUFF: 096A6C - Ending digits -- < !%'*3,-./0123456789:`"?cABCDEFGHIJKLMNOPQRSTUVWXYZ> 011D04 - Options maximum selection in savestate (05 unlocks all options) 012070 - Options music selection in savestate 012072 - Options sfx selection in savestate 012074 - Options selection in savestate (use 03-05 to access secret menu items) 0C615C - Basic object mappings 110D8A - Text mappings Uncompressed Art: 014760 - Apple 014960 - Stawberry 014B60 - Orange 014D60 - Lemon 014F60 - Cupcake 015160 - James Pond icon 015360 - Coin 0153E0 - Angel Fish icon 015560 - Trophy 0158A0 - Crown 015BE0 - TV 015F20 - Heart 015FA0 - Star 016020 - Blue rock face thing 0161A0 - Cheese 016420 - Teeth 016720 - TNT 016F20 - Fruit gun 0171A0 - Jetpack 017220 - Helecopter thing 017420 - Umbrella 017620 - ??? 0176A0 - Balloon 017720 - Springs 0177A0 - Weight 017920 - Hard hat 017F20 - Bomb 017FA0 - Poison 018020 - Gum ??? 0180A0 - Finnius icon 018120 - Micro-map 018380 - Invincibility 018500 - Rock 018700 - Boot 018B40 - Fuel 018D20 - X-ray 024140 - Treasure 1 0241C0 - Treasure 2 024240 - Treasure 3 0242C0 - Treasure 4 024340 - Treasure 5 0243C0 - Treasure 6 024440 - Treasure 7 029940 - ? block 0299C0 - ? block empty 029A40 - ! block 029AC0 - ! block empty 029B40 - Moon block 029BC0 - Blue block 029C40 - Star block 029CC0 - Red block 029D40 - Purple block 029DC0 - Orange block 029E40 - Large ? block 02A040 - Large ? block empty 02A240 - Red teacup 02A2C0 - Yellow teacup 02A340 - Purple teacup 02A3C0 - Blue teacup 02A4A0 - Blue key 02A520 - Yellow key 02A5A0 - ID card 02A620 - Surveillance beacon 02A840 - Moon Compressed art: 0CF166 - Various common blocks (right before prize blocks in VRAM) 0BA968 - Pointer to block art (!, ?, moon, etc.) 0BC034 - Uncompressed art pointers for pick-up items in status bar (0800-0824) 0C615C - Uncompressed art pointers for item animations (0800-0839) word - pointer (add to 0C6158) word - FE00 1031C2 - Block mappings for common blocks (0000-0018) 111068 - Collision table 111276 - Speed on various slopes (32-bits) 111636 - Angle of jump on various slopes (16-bits) 0CEC8A - Map (LVL) file pointers 0CEE8A - Map (LVL) background file pointers 0CF08A - Theme (ITM) tile mappings file pointers (a2) 0CF0B6 - Theme (INS) solidity file pointers (a3) 0CF0E2 - Theme (GLV) art file pointers (a0) 0CF10E - Theme block mappings file pointers (a1) 0CF13A - Theme animations file pointers 0D4CF2 - East of Edam art 0D8926 - Art file after East of Edam 104202 - East of Edam block mappings 105182 - Block mappings file after East of Edam 1129EC - MAP FILE 01: Garden of Edam 112B6C - Star in map 01 112CC8 - Main ground layout section on map 01 1678E4 - East of Edam mappings 17F10E - Garden of Edam mappigns 1203BE - (SNES) MAP FILE 01: Garden of Edam Garden of Edam is CHEES01.LVL on the Amiga (0x7685C - Disk 2) ART: Compressed in PP20 format. Uncompressed data is in standard Sega 4bpp format. TILE MAPPINGS HEADER: string - "ITMS" word - number of objects word - pointer to object 0 word - pointer to object 1 word - pointer to object 2 word - pointer to object 3 word - pointer to object n... DATA: byte - object X size byte - object Y size word - block 0 word - block 1 word - block 2 word - block 3 word - block n... Block value should be block + 0x18 Flags: xSxFxxxx xxxxxxxx F - flip S - make object solid BLOCK MAPPINGS: word - upper/left sprite word - upper/right sprite word - lower/left sprite word - lower/right sprite Flags: xPPFMxxx xxxxxxxx M - mirror F - flip PP - palette MAPS: Maps are compressed in the PP20 format. Uncompressed data is as follows: MAP HEADER: string - "MAP" byte - theme word - map X size word - map Y size word - pointer to row 0 word - pointer to row 1 word - pointer to row 2 word - pointer to row 3 word - pointer to row n... LAYOUT: word - Object word - X pos MORE MAP LAYOUT STUFF: 0CBE46 - Trigger data pointers 0CBE48 - Pointer for MAP01 0CBF84 - MAP01 trigger 0E00 header 0CBF8C - MAP01 trigger 0E01 header 0CBF94 - MAP01 trigger 0E02 header 0CBFC4 - MAP01 trigger 0E00 data word 1 - animation/sound word 2 - macro to use word 3 - X position of marker word 4 - Y position of marker (repeat) make first word 0x0000 when you want to stop Animation 0116 - moons Animation 0100 - blocks Macro 0092 - 4x4 moons Macro 0093 - 8x8 moons LEVEL SETUP: MAP 00 (map screen): 0CB895 - Map front 0CB896 - Map background 0CB897 - Palette 1 (main) 0CB898 - Palette 2 (front) 0CB899 - Palette 3 (background) 0CB89A - Palette 4 (main flashing) 0CB89B - Background scroller A 0CB89C - Background scroller B 0CB89D - Background scroller C 0CB89E - Background scroller D 0CB89F - Front scroller 0CB8A0 - Flags (76543210) 0 - Darker colors (cave) 1 - Must activate exit-beacon to deactivate 2 - Lower force of gravity (NEVER USED!) 3 - Auto-scroll (not sure where script comes from) 4 - ? 5 - ? 6 - Cheese mine destroyed icon on map upon completion 7 - ? 0CB8A1 - Music (09-0F for levels -- 09 is null) Repeat for next map... PALETTE POINTERS: 111726 - Pointer to main in-game palette (main-1) 11172A - Pointer to flashing object palette (main-2) 11172E - Pointer to map screen palette A 111732 - Pointer to map screen palette B 111736 - Pointer to map screen palette C 11173A - Pointer to map screen palette D 11173E - Pointer to cheese palette A 111742 - Pointer to cheese background palette (red) 111746 - Pointer to slime cave palette A 11174A - Pointer to slime palette B 11174E - Pointer to icecream palette A AMIGA (in file "CODE" -- uncompressed): 03449E - Cheese palette SNES: 10B47B - Palette stuff... are they pointers?? OBJECTS AND BLOCKS: 0A71D2 - Block faces byte - pointer type (80 for VRAM, 00 for ROM) VRAM: 06E0 - ! 06E4 - ! empty 06D8 - ? 06DC - ? empty 06E8 - Moon 06EC - Blue 06F0 - Star 06F4 - Red 06F8 - Purple 06FC - Orange 069F - Switch off 069B - Switch on 06D4 - Rock word+1 - art pointer word - X size word - Y size 0A725A - Block type definitions word - block face 0000 - ! 0001 - ! empty 0002 - ? 0003 - ? empty 0004 - (!) -- prize is a block from this list 0005 - (!) -- prize is a block from this list (any difference??) 0006 - Moon 0007 - Blue 0008 - Star 0009 - Red 000A - Large ? 000B - Large ? empty 000C - Purple 000D - Flasing ? and ! (Orange in block faces data) 000E - Switch off 000F - Switch on 0010 - Rock FFFF - NULL (no block) word - prize (or existing block from list) Special: 0000 - Dummy F000 - Function 0 - no prize F100 - Function 1 - crash!!! F200 - Function 2 - random prize (health) F300 - Function 3 - random prize (points) F400 - Function 4 - dummy (flashes when hit) F500 - Function 5 - moon sprout (00, 04, 08, 0C, FF-random]) F600 - Function 6 - switch (tag determines activation marker) F700 - Function 7 - switch??? F800 - Function 8 - switch??? F900 - Function 9 - switch??? FA00 - Function A - fruit gun (always available when needed) FB00 - Function B - star (00-single or 01-tripple) FC00 - Function C - create bridge FD00 - Function D - drop TNT (unused; tag is quantity, 00 is infinite!) FE00 - Function E - drop moons (tag is quantity, 00 is infinite!) FF00 - Function F - crash!!! 0C9B10 - Object (enemy) function pointers 0C9C10 - Object (enemy) functions 0CB4E8 - Object (pickup) properties OBJECT VALUES: 0000 - floor, 64x32 0001 - floor, 128x32 0002 - floor, 256x32 0003 - solid 1, 32x32 0004 - solid 2, 32x32 0005 - solid 3, 64x64 0006 - solid 4, 128x128 0007 - floor/L-ramp, 48x80 0008 - L-ramp, 64x128 0009 - floor/R-ramp, 48x80 000A - R-ramp, 64x128 000B - floor/L-ramp, 48x48 0400 - Enemy: Spaceman 0401 - ??? (shakes screen for a moment) 0402 - Giant falling apple 0403 - Giant falling lemon 0404 - Giant falling cupcake 0405 - Enemy: Rat in car 0406 - Enemy: Tall rat pacing 0407 - TNT sign 0408 - ??? (shakes screen for a moment violently) 0409 - (nothing?) 040A - Enemy: Silver robot rat 040B - Enemy: Brown robot rat (faster) 040C - Ghost 040D - ... music plays, but game stays black / freezes 040E - Rocks being spit out from the ground 045E - Dr. Maybe (last boss) 0475 - Machine 0479 - Agent to rescue: Old frog guy from The Lost Caves 047A - Agent to rescue: Angel Fish 047B - Agent to rescue: Finnius the Frog 047F - Exit beacon 0800 - Coin 0801 - Trophy 0802 - Crown 0803 - TV 0804 - Heart 0805 - Star 0806 - Cheese 0807 - Teeth 0808 - TNT 0809 - Fruit gun 080A - Jetpack 080B - Umbrella 080C - ??? 080D - Springs 080E - Weight 080F - Hard hat 0810 - Bomb 0811 - Poison 0812 - Gum ??? 0813 - Finnius marker 0814 - Micro-map 0815 - Apple 0816 - Strawberry 0817 - Orange 0818 - Lemon 0819 - Cupcake 081A - Rock 081B - Invincibility 081C - Boot 081D - Moon 081E - Blue rock w/ eyes 081F - Helecopter 0820 - Balloon 0821 - (nothing?) 0822 - Jetpack fuel 0823 - Angel Fish marker 0824 - X-ray specs 0825 - Teacup 1 0826 - Teacup 2 0827 - Teacup 3 0828 - Teacup 4 0829 - Key to Cheese Tower 082A - Key to Crystal Cheese Caverns 082B - ID card?? 082C - Lost moon treasure 1 082D - Lost moon treasure 2 082E - Lost moon treasure 3 082F - Lost moon treasure 4 0830 - Lost moon treasure 5 0831 - Lost moon treasure 6 0832 - Lost moon treasure 7 0833 - Control unit to I.C.U. satellite 0834 - (nothing?) 0835 - (nothing?) 0836 - (nothing?) 0837 - (nothing?) 0838 - Finnius marker (duplicate of 0813?) 0839 - Surveillance beacon 083A - ... crash 083B - ... crash 083C - ... crash 0900 - Block w/ coin 0901 - Block w/ trophy 0902 - Block w/ crown 0903 - Block w/ moon 0904 - Block w/ 4 moons 0905 - Block w/ 8 moons 0906 - Block w/ TV 0907 - Block w/ cheese 0908 - Block w/ teeth 0909 - Block w/ TNT 090A - Block w/ TNT (duplicate?) 090B - Block w/ heart 090C - Block w/ fruit gun 090D - Block w/ umbrella 090E - Block w/ ??? 090F - Block w/ springs 0910 - Block w/ weight 0911 - Block w/ mining helmet 0912 - Block w/ gum ??? 0913 - Block w/ helecopter 0914 - Block w/ balloon 0915 - Block w/ green apple 0916 - Block w/ red apple 0917 - Block w/ orange 0918 - Block w/ lemon 0919 - Block w/ cupcake 091A - Block w/ rock 091B - Block w/ invincibility 091C - Block w/ boot 091D - Hidden block w/ coin 091E - Block w/ 8 moons (duplicate of 0905?) 091F - Block w/ TV (duplicate of 0906?) 0920 - Block w/ cheese (duplicate...?) 0921 - Block w/ teeth (duplicate...?) 0922 - Block w/ TNT (duplicate...?) 0923 - Block w/ TNT (duplicate...?) ... 0935 - Block w/ bridge 0936 - Hidden block w/ bridge 0937 - Moon block, slim 0938 - Moon block, medium 0939 - Moon block, wide 093A - Moon block, random 093B - Star block, 1 star 093C - Star block, 3 stars 093D - ? Block w/ fruit gun 093E - Block w/ nothing 093F - Block w/ nothing 0940 - Block w/ nothing 0941 - Hidden purple block 0942 - Block that makes player not able to move (but can jump) ?? 0943 - Block that makes player not able to move (but can jump) ?? 0944 - Block that makes player not able to move (but can jump) ?? 0945 - Block that makes player not able to move (but can jump) ?? 0946 - Block that makes player not able to move (but can jump) ?? 0947 - Rock block ?? 0948 - Green trigger block 0949 - Flashing ? ! block w/ crown 094A - Flashing ? ! block w/ star 094B - Purple block 0A00 - Swing 0B00 - Visible black hole 0C00 - Invisible black hole 0Exx - Special function 0Fxx - Black hole to go to another map LSB = 0 if you want to start the map from the normal start position LSB = 1 if you want to start the map from the upper-left corner Bits 1-7 are the map number 1000 - Visible black hole that does nothing 1100 - Player start position 1200 - Spawn marker (used in conjuction with 0Exx) 1400 - Boss: Kentucky Fried Fiend 1401 - Boss: The Lumpsville Lurker THEMES: 00 - (map screen) [MAPSCR / MAP] 01 - Cheese [CHEESE] 02 - Slime [SLIME] 03 - Slime Cave [SLIMECAV / SLIMCAVE] 04 - Ice Cream [ICECREAM / ICE] 05 - Butter [BUTTER] 06 - Custard [CUSTARD] 07 - Blue Cheese [BLUECHEE] 08 - Crystal Cave [CHEECAV / CHEECAVE] 09 - Yoghurt [YOGHURT] 0A - Cheese Alternate [CHEEROC / CHEEROCK] Theme 0A is used by "Garden of Edam" and "Mozzarella Over-Mine". It replaces crate graphics with the rocket ship and adds spikes. MAPS: 00 - (map screen) [MAP] 01 - Garden of Edam [CHEES01] 02 - East of Edam [KTCHEE1] 03 - Parmesan Plains 04 - Grater Gruyere 05 - Gouda Gully 06 - Hot Custard Springs 07 - Bubbling Plains 08 - Lumpsville 09 - The Lumpsville Lurker 0A - Lower Gloopy 0B - Gloopy Henge 0C - Little Pimple 0D - The Fungal Jungle 0E - Rennet Mine 1 0F - Rennet Mine 2 10 - Mozzarella Over-Mine [MINE1] 11 - More Murky Moors 12 - Lair of the Mush-Beast 13 - Slimeswold 14 - Lower Slimeswold 15 - Slimeswold-Under-Cheese 16 - Curdle Mine 17 - Citrus Rapids 18 - The Arran Archipelago 19 - Gurgleton 1A - Pi-Rat Harbour 1B - Sliterpool 1C - Curdleburg 1D - Little Curdlington 1E - Upper Curdlington 1F - Curdlington on the Whey 20 - Kentucky Fried Fiend (Spooky Butter - AMIGA) (Chicken Surprise - SNES) 21 - Wendsleydale Wastelands 22 - The Floating Folly 23 - Parmesan Peaks 24 - The Feta Flatlands 25 - The Fungi Strikes Back 26 - Glace Glacier 27 - Sorbet on Sea 28 - Scoopingdon 29 - Triple Scoopingdon 2A - Land of the Giants 2B - The Melting Downs 2C - Waferville 2D - Bovine Aerial Assault 2E - * Camonbert Canyon (Penguin Hideout - AMIGA) [PENGBON1] 2F - * Camonbert Canyon 30 - * Camonbert Canyon 31 - * Camonbert Canyon 32 - * Camonbert Canyon 33 - * Camonbert Canyon 34 - Camonbert Canyon 35 - Roquefort Ridge 36 - Gorgonzola Gorge 37 - Caerphilly Down 38 - Dessert Desert 39 - Caerphilly Steppes 3A - Outer He-Brie-Dees 3B - Cheddar Chasm 3C - The Chunnel 3D - Murky Moors 3E - Custard Craters 3F - Banana Basin 40 - Toadstool Point 41 - Slimey Knoll 42 - Poltergeist Valley 43 - Bilgington Barrows 44 - Limburger Reach 45 - Dripping Downs 46 - Eastern Cheddar Hoard 47 - Nibbleston Fell 48 - Cheese Silo 49 - Nibbleston Quarry 4A - Subterranean Stiltonium 4B - Greater Pimple 4C - Fruit Falls 4D - Mushy Marsh 4E - Rottington Ridge 4F - Fruitassic Park 50 - Cherry Cascade 51 - Fruitopolis 52 - Yoghurtopia 53 - Lower Curdleburg 54 - Buttercup Ridge 55 - Buttercup Plains 56 - Lake Butterfingers 57 - / Butterscotch Glen 58 - / Lower Whey 59 - Slippery Slopes 5A - Roquefort Peninsula 5B - Parmesan Plateau 5C - The Munster Moors 5D - Blue Forest Plateau 5E - Blue Cheese Badlands 5F - The Prussian Precipice 60 - Double Scoopingdon 61 - The Peppermint Pinnacles 62 - The Mocha Mountains 63 - + The Long Tunnel 64 - Blue Moon Dunes 65 - Neopolitan Peninsula 66 - Hidden Cheese Silo 67 - Nether Slimeswold 68 - Deadend Caves 69 - Crystalline Cuttings 6A - Splinter Pit 6B - Crystal Corridors 6C - The Crystal Run 6D - Killer Chasm 6E - Crytalline Cheese Chunks 6F - The Lost Caves 70 - ! The Cheese Tower 71 - ! The Secret Slime Pit 72 - ! The Wolds 73 - ! The Wolds 74 - ! The Wolds 75 - ! The Curdleburg Chasm 76 - ! Riccottacombes 77 - ! The Crystal Caverns 78 - ! The Crystal Caverns 79 - ! The Crystal Caverns 7A - ! The Forgotten Zone 7B - ! The Cheese Tower-Top 7C - ! The Overwold 7D - ! The Overwold 7E - ! The Overwold 7F - ! The Slime Plains 80 - ! The Butter Mound 81 - ! The Blue Cheese Ledge 82 - ! The Blue Cheese Cascade 83 - ! The Blue Cheese Cliffs * DELETED MAP + MAP ONLY PARTIALLY LISTED IN JP3 FAQ / MAP NOT LISTED AT ALL IN JP3 FAQ ! NOT A MAP MAP NOT IN GENESIS VERSION - Penguin Hideout PASSWORD INDEX 00 - Moon 01 - Star (5 health) 02 - Rocket (Unlimited jetpack fuel) 03 - UFO 04 - Cheese 05 - Diamond 06 - Flower 07 - Mushroom 08 - Frog 09 - Mouse 0A - Cat 0B - Dog (Always have x-ray specs) 0C - Elephant 0D - Fish (Invincibility) 0E - Skull (1 health) 0F - Heart (Crapload of lives) 10 - Pick 11 - Wrench 12 - TNT 13 - Bomb 14 - Hand 15 - Car 16 - Teacup (All cheese mines destroyed) 17 - Cupcake (Start with homing cupcakes) 18 - Book (Full map) 19 - Hammer 1A - Computer 1B - Teeth (Eat enemies without harm -- use with Finnius cheat) 1C - Candy 1D - Umbrella 1E - Bottle 1F - Boot 00 - Red 20 - Yellow 40 - Green 60 - Blue 01211E - Password characters in savestate (22 characters) 09F8CA - Password cheat to play as Finnius the Frog (48 48 48 48 ...) 09F8F4 - Password cheat to enable different goodies (04 29 4A 6B ...) AMIGA SPECIFICS: In file "CODE" (decompressed) 01CD28 - 'NIGHTMARE' 01CD62 - 'EVAS' 01CD96 - 'UNCLE ROGER' 01CDD0 - 'FORMAT' For addressing things, pointers should have 11C800 added to them.